---
title: Corner stamp
category: demos
layout: default
---

<div id="copy">
  <p>Specifying a corner stamp will save space for it in the layout. The corner stamp feature is available as a modification of Masonry. Get it by copying the <code>$.Mason.prototype</code> methods included in the script in this page's source.</p>

{% highlight javascript %}

$('#container').masonry({
  itemSelector: '.box',
  columnWidth: 100,
  cornerStampSelector: '.corner-stamp'
});

{% endhighlight %}
</div>

<div id="container" class="clearfix">
	
	<div class="corner-stamp">
		I'm up in your layoutz.
	</div>

  <div class="box col2">
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.</p>
  </div>

  <div class="box col1">
    <p>Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. </p>
  </div>

  <div class="box col1">
    <p>Fusce accumsan mollis eros. Pellentesque a diam sit amet mi ullamcorper vehicula  </p>
  </div>

  <div class="box">
    <h2>This is the box with no width set</h2>
  </div>

  <div class="box col1">
    <h2>Sit amet mi ullamcorper vehicula</h2>
  </div>

  <div class="box col1">
    <p>adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus.</p>
  </div>

  <div class="box col2">
    <p>Sit amet mi ullamcorper vehicula</p>
  </div>

  <div class="box col1">
    <p>Phasellus pede arcu, dapibus eu, fermentum et, dapibus sed, urna.</p>
  </div>

  <div class="box col2">
    <p>Ut condimentum mi vel tellus. Suspendisse laoreet. Fusce ut est sed dolor gravida convallis. Morbi vitae ante. Vivamus ultrices luctus nunc. Suspendisse et dolor. Etiam dignissim. Proin malesuada adipiscing lacus. Donec metus. Curabitur gravida.</p>
    <p>Phasellus pede arcu, dapibus eu, fermentum et, dapibus sed, urna.</p>
  </div>

  <div class="box col3">
    <p>Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus. Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus. Nunc tellus ante, mattis eget, gravida vitae, ultricies ac, leo. Integer leo pede, ornare a, lacinia eu, vulputate vel, nisl.</p>
  </div>

  <div class="box col1">
    <p>Morbi purus libero, faucibus adipiscing, commodo quis, gravida id, est. Sed lectus. Praesent elementum hendrerit tortor. Sed semper lorem at felis.</p>
  </div>

  <div>
    <div class="box col2">
      <p>Vestibulum volutpat, lacus a ultrices sagittis,</p>
      <p>Fusce accumsan mollis eros. Pellentesque a diam sit amet mi ullamcorper vehicula  </p>
    </div>

    <div class="box col2">
      <p>Sit amet mi ullamcorper vehicula</p>
    </div>

    <div class="box col1">
      <p>Morbi purus libero</p>
    </div>

    <div class="box col1">
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.</p>
    </div>

    <div class="box col3">
      <p>Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. Aenean dignissim pellentesque felis.</p>
      <p>Vestibulum volutpat, lacus a ultrices sagittis,</p>
      <ul>
        <li>Lacus a ultrices sagittis</li>
        <li>Democratis</li>
        <li>Plummus</li>
      </ul>
    </div>

    <div class="box col1">
      <p>Fusce accumsan mollis eros. Pellentesque a diam sit amet mi ullamcorper vehicula  </p>
    </div>

    <div class="box col1">
      <p>Sit amet mi ullamcorper vehicula</p>
    </div>

    <div class="box col1">
      <h2>Morbi purus libero</h2>
    </div>


    <div class="box col2">
      <p>Ut condimentum mi vel tellus. Suspendisse laoreet. Fusce ut est sed dolor gravida convallis. Morbi vitae ante. Vivamus ultrices luctus nunc. Suspendisse et dolor. Etiam dignissim. Proin malesuada adipiscing lacus. Donec metus. Curabitur gravida.</p>
      <p>Phasellus pede arcu, dapibus eu, fermentum et, dapibus sed, urna.</p>
    </div>

    <div class="box col1">
      <p>Fusce accumsan mollis eros. Pellentesque a diam sit amet mi ullamcorper vehicula</p>
    </div>

    <div class="box col3">
      <p>Morbi purus libero, faucibus adipiscing, commodo quis, gravida id, est. Sed lectus. Praesent elementum hendrerit tortor. Sed semper lorem at felis.</p>
      <p>Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus. Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus. Nunc tellus ante, mattis eget, gravida vitae, ultricies ac, leo. Integer leo pede, ornare a, lacinia eu, vulputate vel, nisl.</p>
      <p>Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus. Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus. Nunc tellus ante, mattis eget, gravida vitae, ultricies ac, leo. Integer leo pede, ornare a, lacinia eu, vulputate vel, nisl.</p>
    </div>


    <div class="box col1">
      <p>adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus.</p>
    </div>

    <div class="box col2">
      <p>Sit amet mi ullamcorper vehicula</p>
    </div>

    <div class="box col1">
      <p>Phasellus pede arcu, dapibus eu, fermentum et, dapibus sed, urna.</p>
    </div>

    <div class="box col1">
      <h2>Fusce accumsan mollis eros. Pellentesque a diam sit amet mi ullamcorper vehicula  </h2>
    </div>

    <div class="box col2">
      <p>Ut convallis, sem sit amet interdum consectetuer, odio augue aliquam leo, nec dapibus tortor nibh sed augue.</p>
      <p>Ut condimentum mi vel tellus. Suspendisse laoreet. Fusce ut est sed dolor gravida convallis. Morbi vitae ante. Vivamus ultrices luctus nunc. Suspendisse et dolor. Etiam dignissim. Proin malesuada adipiscing lacus. Donec metus. Curabitur gravida.</p>
    </div>

    <div class="box col1">

      <ul>
        <li>Lacus a ultrices sagittis</li>
        <li>Democratis</li>
        <li>Plummus</li>
      </ul>
    </div>

    <div class="box col3">
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus hendrerit. Pellentesque aliquet nibh nec urna. In nisi neque, aliquet vel, dapibus id, mattis vel, nisi. Sed pretium, ligula sollicitudin laoreet viverra, tortor libero sodales leo, eget blandit nunc tortor eu nibh. Nullam mollis. Ut justo. Suspendisse potenti.</p>
      <p>Fusce accumsan mollis eros. Pellentesque a diam sit amet mi ullamcorper vehicula  </p>
      <p>Morbi interdum mollis sapien. Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus.</p>
    </div>

    <div class="box col2">
      <p>adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus.</p>
      <p>Ut convallis, sem sit amet interdum consectetuer, odio augue aliquam leo, nec dapibus tortor nibh sed augue.  Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus. Nunc tellus ante, mattis eget, gravida vitae, ultricies ac, leo. Integer leo pede, ornare a, lacinia eu, vulputate vel, nisl.</p>
    </div>

    <div class="box col1">
      <p>Phasellus pede arcu, dapibus eu, fermentum et, dapibus sed, urna.</p>
    </div>

    <div class="box col1">
      <p>Fusce accumsan mollis eros. Pellentesque a diam sit amet mi ullamcorper vehicula</p>
    </div>

    <div class="box col3">
      <p>Morbi purus libero, faucibus adipiscing, commodo quis, gravida id, est. Sed lectus. Praesent elementum hendrerit tortor. Sed semper lorem at felis.</p>
      <p>Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus. Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus. Nunc tellus ante, mattis eget, gravida vitae, ultricies ac, leo. Integer leo pede, ornare a, lacinia eu, vulputate vel, nisl.</p>
    </div>


  </div>

  <div class="box col1">
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.</p>
  </div>

  <div class="box col1">
    <p>Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. </p>
  </div>

  <div class="box col1">
    <p>Fusce accumsan mollis eros. Pellentesque a diam sit amet mi ullamcorper vehicula  </p>
  </div>

  <div class="box col2">
    <p>Vestibulum volutpat, lacus a ultrices sagittis,</p>
    <p>Fusce accumsan mollis eros. Pellentesque a diam sit amet mi ullamcorper vehicula  </p>
    <p>Morbi purus libero, faucibus adipiscing, commodo quis, gravida id, est. Sed lectus. Praesent elementum hendrerit tortor. Sed semper lorem at felis.</p>
  </div>

</div> <!-- #container -->


<script src="../{{ site.jquery_js }}"></script>
<script src="../{{ site.masonry_js }}"></script>
<script>

  // Masonry corner stamp modifications
  $.Mason.prototype.resize = function() {
    this._getColumns();
    this._reLayout();
  };
  
  $.Mason.prototype._reLayout = function( callback ) {
    var freeCols = this.cols;
    if ( this.options.cornerStampSelector ) {
      var $cornerStamp = this.element.find( this.options.cornerStampSelector ),
          cornerStampX = $cornerStamp.offset().left - 
            ( this.element.offset().left + this.offset.x + parseInt($cornerStamp.css('marginLeft')) );
      freeCols = Math.floor( cornerStampX / this.columnWidth );
    }
    // reset columns
    var i = this.cols;
    this.colYs = [];
    while (i--) {
      this.colYs.push( this.offset.y );
    }

    for ( i = freeCols; i < this.cols; i++ ) {
      this.colYs[i] = this.offset.y + $cornerStamp.outerHeight(true);
    }

    // apply layout logic to all bricks
    this.layout( this.$bricks, callback );
  };

  $(function(){
    
    $('#container').masonry({
      itemSelector: '.box',
      columnWidth: 100,
      cornerStampSelector: '.corner-stamp'
    });
    
  });
</script>